System, apparatus, and method for loading bits into sub-channels

ABSTRACT

An apparatus and a method for loading a predetermined number of bits into a plurality of sub-channels are provided. The apparatus comprises a sort module, a calculation module, and a decision module. The sort module is configured to sort the sub-channels into a plurality of sorted sub-channels according to the quality value of each of the sub-channels. The calculation module is configured to calculate the difference value for each of the sorted sub-channels, except for the first sorted sub-channel, according to the corresponding quality value. The decision module is configured to decide a number of bits for each of the sorted sub-channels according to the difference values, wherein a summation of the numbers is equal to the predetermined number. The apparatus and the method are able to load bits efficiently according to the difference values.

CROSS-REFERENCES TO RELATED APPLICATIONS

Not applicable.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a system, an apparatus, and a method for loading bits into sub-channels. More particularly, the present invention relates to a system, an apparatus, and a method for loading bits into sub-channels according to the different sub-channel qualities.

2. Descriptions of the Related Art

Currently, most digital communication systems, such as orthogonal frequency division multiplexing (OFDM) and asymmetric digital subscriber line (ADSL), employ multi-channel or multi-carrier transmission. It is quite important in the field of multi-channel transmission to be effectively allocating bits into sub-channels so that the performance is able to be increased and the bit error rate (BER) during the transmission is able to be reduced.

Power and data rate are involved in a bit loading method, which allocates bits and power to sub-channels. Conventionally, the bit loading methods are either subject to a fixed power or a fixed data rate. When a bit loading method is subject to a fixed power, the method intends to maximize the data rate under the fixed power. When a bit loading method is subject to a fixed data rate, the method intends to minimize the power.

In U.S. Pat. No. 6,418,161, a bit loading method subject to a fixed power is provided, wherein the power is limited by a power spectral-density mask and an aggregate signal power constraint. The method allocates bits to sub-channels according to the lowest marginal power-cost per bit. If there is remaining aggregate signal power after all the bits have been allocated to the sub-channels with sufficient margins to carry a bit, additional bits are assigned to the sub-channels using frequency-domain-spreading across several sub-channels at the corresponding reduced power levels. Although optimal, this method is too complicated for initial bit allocation.

On the contrary, the bit-filling method and the bit-removal method are subject to a fixed data rate. Both of them allocate or remove bits iteratively based on the power cost of sub-channels. The bit-filling method initially allocates zero bits to all sub-channels and then adds one bit at a time to the sub-channel that requires minimum additional power until the target data rate is achieved. The bit-removal method initially allocates maximal bits to the sub-channels and then removes one bit at a time from the sub-channel that reduces the maximum power until the target data rate is achieved. Both the bit-filling and bit-removal methods result in the same bit allocation. Although both methods can achieve optimal results, they are complicated and inefficient due to the bit-based iteration.

Although optimal bit loading methods have been proposed in this field, all of them are extremely complicated. Thus, an efficient approach for allocating bits to sub-channels is still needed in this field.

SUMMARY OF THE INVENTION

An objective of the present invention is to provide a system. The system comprises a processing unit and an interface. The processing unit is configured to load a predetermined number of bits into a plurality of sub-channels. The processing unit comprises a sort module, a calculation module, and a decision module. The sort module is configured to sort the sub-channels into a plurality of sorted sub-channels according to a quality value of each of the sub-channels. The calculation module is configured to calculate a difference value for each of the sorted sub-channels, except for the first sorted sub-channel, according to the corresponding quality value. The decision module is configured to decide a number of bits for each of the sorted sub-channels according to the difference values, wherein a summation of the numbers is equal to the predetermined number. The interface is configured to transmit the predetermined number of bits.

Another objective of the present invention is to provide an apparatus for loading a predetermined number of bits into a plurality of sub-channels. The apparatus comprises a sort module, a calculation module, and a decision module. The sort module is configured to sort the sub-channels into a plurality of sorted sub-channels according to a quality value of each of the sub-channels. The calculation module is configured to calculate a difference value for each of the sorted sub-channels, except for the first sorted sub-channel, according to the corresponding quality values. The decision module is configured to decide a number of bits for each of the sorted sub-channels according to the difference values, wherein a summation of the numbers is equal to the predetermined number.

A further objective of the present invention is to provide an apparatus for loading a predetermined number of bits into a plurality of sub-channels. The apparatus comprises (1) means for sorting the sub-channels into a plurality of sorted sub-channels according to a quality value of each of the sub-channels, (2) means for calculating a difference value for each of the sorted sub-channels, except for the first sorted sub-channel, according to the corresponding quality values, and (3) means for deciding a number of bits for each of the sorted sub-channels according to the difference values, wherein a summation of the numbers is equal to the predetermined number.

Yet a further objective of the present invention is to provide a method for loading a predetermined number of bits to a plurality of sub-channels. The method comprises the following steps: (1) sorting the sub-channels into a plurality of sorted sub-channels according to a quality value of each of the sub-channels, (2) calculating a difference value for each of the sorted sub-channels, except for the first sorted sub-channel, according to the corresponding quality values, and (3) deciding a number of bits for each of the sorted sub-channels according to the difference values, wherein a summation of the numbers is equal to the predetermined number.

According to the aforementioned arrangements and steps, the present invention is able to exploit the differences of the channel qualities between sub-channels and then load bits into the sub-channels based on the differences. Using these differences, more than one bit can be loaded per iteration. Consequently, the present invention can load bits into sub-channels more efficiently.

The detailed technology and preferred embodiments implemented for the subject invention are described in the following paragraphs accompanying the appended drawings for people skilled in this field to well appreciate the features of the claimed invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a first embodiment of the present invention;

FIG. 2A illustrates the difference values of the sorted sub-channels of the first embodiments;

FIG. 2B illustrates an example of the temporary number and the number of bits of each of the sorted sub-channels;

FIG. 2C illustrates another example of the temporary number and the number of bits of each of the sorted sub-channels;

FIG. 3A illustrates the second embodiment of the present invention; and

FIG. 3B illustrates the second embodiment of the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 illustrates a first embodiment of the present invention, which is a communication transmission system 1. The communication transmission system 1 comprises a processing unit 11 and an interface 15. The processing unit 11 comprises a sort module 12, a calculation module 13, and a decision module 14. The decision module 14 comprises a selection module 141, a comparison module 142, and a process module 143. The selection module 141 comprises a group module 141 a and a decrease module 141 b. The process module 143 comprises a load module 143 a and an increase module 143 b. Each of the modules can be realized by an apparatus that has processing or operating ability, such as a CPU.

In the first embodiment, the communication transmission system 1 comprises N sub-channels with a required data rate B_(req). The communication transmission system 1 will assign b_(i) bits to the i^(th) sub-channel so that

${\sum\limits_{i = 1}^{N}b_{i}} = {B_{req}\mspace{14mu}{and}\mspace{14mu}{\sum\limits_{i = 1}^{N}P_{i}}}$ is minimized, wherein b_(i)ε{0, 1, . . . , b}, ∀1≦i≦N, b is the maximum of the number of bits that can be assigned to each of the N sub-channels, and P_(i) is the consumed power of the i^(th) sub-channel. Generally speaking, the first embodiment comprises two stages. The first stage is the loading stage, while the second stage is the removing stage.

First, the loading stage is performed. The processing unit 11 is configured to load a predetermined number of bits, i.e. B_(req) bits, into the N sub-channels to achieve the required data rate B_(req). The sort module 12 sorts the N sub-channels into N sorted sub-channels according to a channel gain to noise ratio (CNR) of each of the sub-channels. It is noted that the CNRs can be replaced by other values that represent the qualities of the sub-channels in other embodiments. After sorting, the relations of the CNRs can be represented as CNR₁≧ . . . ≧CNR_(N), wherein the subscripts indicate the order of the sorted sub-channels. That is, CNR₁ indicates the CNR of the first sorted sub-channel.

Then, the calculation module 13 calculates a difference value d_(i)for each of the sorted sub-channels, except for the first sorted sub-channel, according to the corresponding CNR_(i). To be more specific,

${d_{i} = \left\lfloor {\log_{2}\left( \frac{C\; N\; R_{1}}{C\; N\; R_{i}} \right)} \right\rfloor},$ wherein i denotes the index of the i^(th) sorted sub-channel and d_(i) denotes the difference value between the i^(th) sorted sub-channel and the first sorted sub-channel. In this embodiment, the difference values d_(i) indicate the difference value of the number of bits assigned to the first sorted sub-channel and the number of bits assigned to the i^(th) sorted sub-channel.

To be more concrete, it is assumed that the parameters are set to N=29, B_(req)=58, and b=6. Based on the corresponding CNRs, d₂=1, d₃=1, d₄=2, d₅=2, d₆=2, d₇=4, d₈=4, d₉=4, d₁₀=4, d₁₁=6, d₁₂=6, d₁₃=6, d₁₄=6, d₁₅=11, d₁₆=12, d₁₇=12, d₁₈=12, d₁₉=12, d₂₀=12, d₂₁=12, d₂₂=12, d₂₃=13, d₂₄=13, d₂₅=13, d₂₆=13, d₂₇=13, d₂₈=13, and d₂₉=13 are derived. FIG. 2A visualizes the difference values by setting the number of bits assigned to the sub-channel with the lowest CNR as one. In FIG. 2A, the horizontal axis represents the index of the sorted sub-channels, while the vertical axis represents the number of bits. From FIG. 2A, if the sub-channel with the lowest CNR, i.e. the 29^(th) sorted sub-channel, has one bit, then the first sorted sub-channel has 14 (13+1) bits because d₂₉=13. FIG. 2A is used to demonstrate the difference values but not the loading result of the first embodiment.

The decision module 14 then utilizes several modules to decide a number of bits b_(i) for each of the sorted sub-channels according to the difference value d_(i), wherein a summation of the numbers is equal to the predetermined number. The details of the process to determine the number of bits, b_(i), are explained in the following paragraphs.

The decision module 14 decides a temporary number t₁ of “1” for the first sorted sub-channel. In other embodiments, the temporary number t₁ may be set to other values depending on the particular situation. Then, the calculation module 13 calculates a calculated number c_(i) for each of the rest sorted sub-channels by subtracting the corresponding difference value from the number of bits of the first sorted sub-channel, that is, calculating c_(i)=t₁−d_(i). The calculated values c_(i) are derived as follows: c₂=0, c₃=0, c₄=−1, c₅=−1, c₆=−1, c₇=−3, c₈=−3, c₉=−3, c₁₀=−3, c₁₁=−5, c₁₂=−5, c₁₃=−5, c₁₄=−5, c₁₅=−10, c₁₆=−11, c₁₇=−11, c₁₈=−11, c₁₉=−11, c₂₀=−11, c₂₁=−11, c₂₂=−11, c₂₃=−12, c₂₄=−12, c₂₅=−12, c₂₆=−12, c₂₇=−12, c₂₈=−12, and c₂₉=−12.

Then, the selection module 141 selects a temporary number t_(i) for each of the rest sorted sub-channels by selecting a maximum of a zero and a calculated number c_(i)=t₁−d_(i) for each of the sorted sub-channels, i.e. t_(i)=max{0,c_(i)}=max{0,t_(i)−d_(i)}. All the t_(i) values for the rest sorted sub-channels are equal to zero at this moment. After that, the selection module 141 selects the minimum of the temporary number t_(i) and a reference value, i.e. b=6 as the number of bits b_(i) for each of the sorted sub-channels, i.e. b_(i)=min{t_(i), b}. At this moment, b₁=1, while the other b_(i) values are all 0.

Next, the calculation module 13 calculates the summation of the numbers of bits of the sorted sub-channels, i.e.

${B = {{\sum\limits_{i = 1}^{N}b_{i}} = {\sum\limits_{i = 1}^{29}b_{i}}}},$ which is 1 because b₁=1 and the rest b_(i) values are zero. The comparison module 142 compares the summation B with the predetermined number B_(req)=58. The process module 143 processes the number of bits b_(i) of each sub-channels according to the compared result. In other words, the operation is correlated with the result of whether the summation is smaller than, greater than, or equal to B_(req).

At this moment, the summation B, i.e. 1, is smaller than the predetermined number B_(req), i.e. 58. The increase module 143 b increases the temporary number of the first sorted sub-channel t₁ by one, resulting in t₁=2. In response to the increase of t₁, the calculation module 13 repeatedly calculates the calculated number c_(i)=t₁−d_(i) for each of the rest sorted sub-channels, while the selection module 141 repeatedly selects t_(i)=max{0,c_(i)} for each of the rest sorted sub-channel. The selection module 141 further repeatedly selects b_(i)=min{t₁, b} for each of the sorted sub-channels, while the calculation module 13 repeatedly calculates the summation

$B = {{\sum\limits_{i = 1}^{N}b_{i}} = {\sum\limits_{i = 1}^{29}{b_{i}.}}}$ Then, the comparison module 142 repeatedly compares the summation with the predetermined number B_(req), so that the process module 143 can repeatedly process the number of bits of each of the sub-channels according to the compared result. The aforementioned operations will be repeated until the summation B is not smaller than the predetermined number B_(req).

Assuming that the temporary number of the first sorted sub-channel has been increased to 7, i.e. t₁=7, the aforementioned operations are visualized in FIG. 2B with t₁=7. In FIG. 2B, the horizontal axis represents the sorted sub-channels, while the vertical axis represents the number of bits. Although the vertical bars indicate the number of bits, they do not indicate the number of bits that are assigned to the sorted sub-channels. Instead, the portions of the vertical bars bound in the rectangle 22 represent the number of bits b_(i) assigned to the sorted sub-channels. The summation of the number of bits comprised in the rectangle 22 is the summation B, which equals 49 at this moment. Meanwhile, the bits comprised in the rectangle 21 represent t_(i). Since the summation of the bits is smaller than the predetermined number B_(req)=58, the rectangles 21, 22 continue moving downward as indicated by the arrow 20, i.e. increasing t_(i).

Next, the increase module 143 b increases t₁ to 8. Then, the calculation module 13 derives c₂=7, c₃=7, c₄=6, c₅=6, c₆=6, c₇=4, c₈=4, c₉=4, c₁₀=4, c₁₁=2, c₁₂=2, c₁₃=2, c₁₄=2, c₁₅=−3, c₁₆=−4, c₁₇=−4, c₁₈=−4, c₁₉=−4, c₂₀=−4, c₂₁=−4, c₂₂=−4, c₂₃=−5, c₂₄=−5, c₂₅=−5, c₂₆=−5, c₂₇=−5, c₂₈=−5, and c₂₉=−5, the selection module 141 derives t₂=7, t₃=7, t₄=6, t₅=6, t₆=6, t₇=4, t₈=4, t₉=4, t₁₀=4, t₁₁=2, t₁₂=2, t₁₃=2, t₁₄=2, t₁₅=0, t₁₆=0, t₁₇=0, t₁₈=0, t₁₉=0, t₂₀=0, t₂₁=0, t₂₂=0, t₂₃=0, t₂₄=0, t₂₅=0, t₂₆=0, t₂₇=0, t₂₈=0, and t₂₉=0, and the selection module 141 derives b₁=6, b₂=6, b₃=6, b₄=6, b₅=6, b₆=6, b₇=4, b₈=4, b₉=4, b₁₀=4, b₁₁=2, b₁₂=2, b₁₃=2, b₁₄=2, b₁₅=0, b₁₆=0, b₁₇=0, b₁₈=0, b₁₉=0, b₂₀=0, b₂₁=0, b₂₂=0, b₂₃=0, b₂₄=0, b₂₅=0, b₂₆=0, b₂₇=0, b₂₈=0, and b₂₉=0 in sequence. Then, the calculation module 13 calculates the summation, which equals 60. The comparison module 142 compares the summation B=60 with the predetermined number B_(req)=58. FIG. 2C illustrates the corresponding information when t₁=8. The bits comprised in the rectangle 23 represent t_(i), while the bits comprised in the rectangle 24 represent the number of bits b_(i) assigned to the sorted sub-channels.

Since the summation B is greater than the predetermined number B_(req), the process module 143 processes an alternative approach. That is, the first embodiment enters the second stage, i.e. removing stage. First, the group module 141 a groups the sub-channels with the same number of bits b_(i) into a plurality of groups. To be more specific, the group module 141 a groups S₁, S₂, S₃, S₄, S₅, and S₆ into a group G₁, groups S₇, S₈, S₉, and S₁₀ into a group G₂, and groups S₁₁, S₁₂, S₁₃, and S₁₄ into a group G₃. Then, the selection module 141 selects the sub-channel with the smallest CNR from each of the groups to derive the candidates. That is, the selection module 141 selects S₆ from group G₁, S₁₀ from group G₂, and S₁₄ from group G₃ as the candidates. The calculation module 13 then calculates a power reduction value for each of the candidates using the following equation:

${{\Delta\; P_{j}^{-}} = {\frac{\Gamma}{C\; N\; R_{j}}2^{b_{j} - 1}}},$ wherein j indicates the index of the candidates and

$\Gamma = {\frac{1}{1.6}{\ln\left( \frac{0.2}{B\; E\; R} \right)}}$ is constant under the bit error rate (BER) constraint. The decrease module 141 b decreases the number of bits of the candidates with the greatest power reduction value by one. Assuming that the candidate with the greatest power reduction value is S₆, the number of bits of S₆ is decreased to 5 with the decrease module 141 b. Then, the calculation module 13 calculates the summation, B, of the number of bits of the sorted sub-channels again and derives B=59. The comparison module 142 compares the summation with the predetermined number again so that the process module 143 can process the number of bits of each sub-channel according to the compared result.

Because the summation, 59, is still greater than the predetermined number 58, the selection module 141 repeatedly selects the sub-channel with the smallest quality value from each of the groups to derive the candidate again, i.e. selecting S₅ from group G₁, S₁₀ from group G₂, and S₁₄ from group G₃. The calculation module 13 then repeatedly calculates the power reduction value for each of the candidates again. Likewise, the decrease module 141 b repeatedly decreases the number of bits of the candidate with the greatest power reduction by one. This time, the decrease module 141 b decreases the number of bits of S₅ to 5. Then, the calculation module 13 calculates the summation of the number of bits of the sorted sub-channels, which equals 58. The comparison module 142 compares the summation with the predetermined number again so the process 143 module can process the number of bits of each of the sub-channels according to the compared result.

Now, because the compared result of summation B is equal to the predetermined number B_(req), the load module 143 a loads the numbers of bits, b₁=6, b₂=6, b₃=6, b₄=6, b₅=5, b₆=5, b₇=4, b₈=4, b₉=4, b₁₀=4, b₁₁=2, b₁₂=2, b₁₃=2, b₁₄=2, b₁₅=0, b₁₆=0, b₁₇=0, b₁₈=0, b₁₉=0, b₂₀=0, b₂₁=0, b₂₂=0, b₂₃=0, b₂₄=0, b₂₅=0, b₂₆=0, b₂₇=0, b₂₈=0, and b₂₉=0, into the corresponding sub-channels. Then, the interface 15 transmits the predetermined number of bits.

Since the difference values are calculated at the very beginning in the loading stage, the bits allocated to all the sorted sub-channels are simply updated according to the difference values. This updating approach in the loading stage has two significant indications. The first indication is that all the sorted sub-channels are updated together, while the second indication is that the updating is achieved by simple calculations. After several iterations, when the summation of the numbers of bits is not smaller than the predetermined number (i.e. the required data rate B_(req)), the loading stage finishes. At this moment, the number of bits b_(i) assigned to each of the sub-channels is equal to or is one-bit greater than the number derived by the optimal methods (bit-loading method and bit-removal method of the prior art). Although the removal stage requires the calculation of the power reduction values for each of the candidates, it is still efficient because the candidate sizes are extremely small. The present invention requires N+1 logarithmic operations, N exponential operations, and 2N+3 multiplications. Consequently, the present invention is able to load the predetermined number of bits B_(req) into the N sub-channels.

FIG. 3A illustrates the flowchart of the second embodiment of the present invention, which is a method for loading a predetermined number of bits into a plurality of sub-channels. First, the method executes step 301 to sort the sub-channels into a plurality of sorted sub-channels according to a quality value of each of the sub-channels. Then, step 302 is executed to calculate a difference value for each of the sorted sub-channels, except for the first sorted sub-channels, according to the corresponding quality values according to

${d_{i} = \left\lfloor {\log_{2}\left( \frac{C\; N\; R_{1}}{C\; N\; R_{i}} \right)} \right\rfloor},$ wherein i denotes the index of the sub-channel, CNR_(i) denotes the quality value of the i^(th) sorted sub-channel, and d_(i) denotes the difference value. Then, 303˜319 are executed to decide a number of bits for each of the sorted sub-channels according to the difference values, wherein a summation of the numbers is equal to the predetermined number.

More specifically, step 303 decides a temporary number for the first sorted sub-channel. Next, step 304 calculates a calculated number for each of the rest sorted sub-channels by subtracting the corresponding difference value from the number of bits of the first sorted sub-channel. After that, step 305 selects a maximum value of zero and the calculated number as a temporary number for each of the rest sorted sub-channels. Then, step 306 selects a minimum of the temporary number and a reference value as the number of bits for each of the sorted sub-channels, wherein the reference value is the maximum number of bits that each of the sub-channel is adapted to carry. The method further executes step 307 to calculate the summation of the numbers of bits of the sorted sub-channels. Then, step 308 compares the summation with the predetermined number. Lastly, step 309 processes the number of bits of each of the sub-channels according to the compared result.

More specifically, step 309 comprises steps 310˜319 as illustrated in FIG. 3B. First, step 310 determines whether the summation is smaller than the predetermined number. If so, step 311 increases the temporary number of the first sorted sub-channel by one. Then, the method proceeds to step 304. If the result of step 310 indicates the summation is not smaller than the predetermined number, step 312 determines whether the summation is equal to the predetermined number. If so, step 313 loads the numbers of bits into the sub-channels. If not, i.e. the summation is greater than the predetermined number, the method executes step 314 to determine whether the sub-channels have been grouped. If the sub-channels have not been grouped yet, the method executes step 315 to group the sub-channels with the same number of bits into a plurality of groups. Next, step 316 selects the sub-channel with the smallest quality value from each of the groups to derive a plurality of candidates. If the sub-channels have been grouped in step 314, the method directly proceeds to step 316. Next, the method proceeds to step 317 to calculate a power reduction value for each of the candidates. Step 318 decreases the number of bits of the candidate with the greatest power reduction value by one. Next, step 319 calculates the summation of the number of bits of the sorted sub-channels. Then, the method proceeds to step 312 again.

In addition to the steps illustrated in FIG. 3A and FIG. 3B, the second embodiment is able to execute all the operations and functions described in the first embodiment. Those skilled in the art can directly understand how the second embodiment can execute the operations and functions based on the aforementioned first embodiment. Consequently, redundant descriptions for the operations and functions are not repeated herein.

The above disclosure is related to the detailed technical contents and inventive features thereof. People skilled in this field may proceed with a variety of modifications and replacements based on the disclosures and suggestions of the invention as described without departing from the characteristics thereof. Nevertheless, although such modifications and replacements are not fully disclosed in the above descriptions, they have substantially been covered in the following claims as appended. 

1. A method for loading a predetermined number of bits into a plurality of sub-channels, the method being executed by a processing unit of a communication transmission system, the method comprising the steps of: (a) enabling the processing unit to sort the sub-channels into a plurality of sorted sub-channels according to a quality value of each of the sub-channels; (b) enabling the processing unit to perform the following operation for each of the sorted sub-channels except the first sorted sub-channel: calculating a difference value by using the quality value of the sorted sub-channel and the quality value of the first sorted sub-channel; and (c) enabling the processing unit to decide a number of bits for each of the sorted sub-channels according to the difference values.
 2. The method of claim 1, wherein the step (b) enables the processing unit to calculate the difference value according to the following equation: ${d_{i} = \left\lfloor {\log_{2}\left( \frac{C\; N\; R_{1}}{C\; N\; R_{i}} \right)} \right\rfloor},$ wherein i denotes the index of the sub-channels, CNR denotes the quality value, and d_(i) denotes the difference value.
 3. The method of claim 1, wherein the step (c) comprises the steps of: (d) enabling the processing unit to decide a temporary number for the first sorted sub-channel; (e) enabling the processing unit to calculate a calculated number for each of the rest sorted sub-channels by subtracting the corresponding difference value from the number of bits of the first sorted sub-channel; (f) enabling the processing unit to select the maximum of a zero and the calculated number as a temporary number for each of the rest sorted sub-channels; and (g) enabling the processing unit to select the minimum of the temporary number and a reference value as the number of bits for each of the sorted sub-channels, the reference value being the maximal number of bits that each of the sub-channel is adapted to carry; (h) enabling the processing unit to calculate a summation of the numbers of bits of the sorted sub-channels; (i) enabling the processing unit to compare a summation with the predetermined number; and (j) enabling the processing unit to process the number of bits of each of the sub-channels according to the compared result.
 4. The method of claim 3, wherein the step (j) comprises the step of: enabling the processing unit to load the numbers of bits into the sub-channels, if the summation is equal to the predetermined number.
 5. The method of claim 3, wherein the step (j) comprises the steps of: enabling the processing unit to increase the temporary number of the first sorted sub-channel by one, if the summation is smaller than the predetermined number; and enabling the processing unit to repeat the step (e), step (f), step (g), step (h), step (i), and step (j) in sequence.
 6. The method of claim 3, wherein the step (j) comprises the steps of: (k) enabling the processing unit to group the sub-channels having the same number of bits into a plurality of groups, if the summation is greater than the predetermined number; (l) enabling the processing unit to select the sub-channel with the smallest quality value from each of a plurality of groups to derive a plurality of candidate; (m) enabling the processing unit to calculate a power reduction value for each of the candidates; (n) enabling the processing unit to decrease the number of bits of the candidate with the greatest power reduction value by one; (o) enabling the processing unit to calculate the summation of the number of bits of the sorted sub-channels in response to the step (n); (p) enabling the processing unit to compare the summation with the predetermined number; and (q) enabling the processing unit to process the number of bits of each of the sub-channels according to the compared result.
 7. The method of claim 6, wherein the step (q) comprises the step of: enabling the processing unit to repeat the step (I), step (m), step (n), step (o), step (p), and step (q) in sequence, if the summation is greater than the predetermined number.
 8. The method of claim 6, wherein the step (q) comprises the step of: enabling the processing unit to load the numbers of bits into the sub-channels, if the summation is equal to the predetermined number.
 9. The method of claim 1, wherein the quality value is a channel gain to noise ratio (CNR).
 10. An apparatus for loading a predetermined number of bits into a plurality of sub-channels, comprising: a sort module for sorting the sub-channels into a plurality of sorted sub-channels according to a quality value of each of the sub-channels; a calculation module for performing the following operation for each of the sorted sub-channels except the first sorted sub-channel: calculating a difference value by using the quality value of the sorted sub-channel and the quality value of the first sorted sub-channel; and a decision module for deciding a number of bits for each of the sorted sub-channels according to the difference values.
 11. The apparatus of claim 10, wherein the calculation module calculates the difference value according to the following equation: ${d_{i} = \left\lfloor {\log_{2}\left( \frac{{CNR}_{1}}{{CNR}_{i}} \right)} \right\rfloor},$ wherein i denotes the index of the sub-channels, CNR denotes the quality value, and d_(i) denotes the difference value.
 12. The apparatus of claim 10, wherein the decision module comprises: a selection module for selecting a temporary number for each of the sorted sub-channels except for the first sorted sub-channel by selecting the maximum of a zero and a calculated number of each of the sorted sub-channels and for selecting the minimum of the temporary number and a reference value as the number of bits for each of the sorted sub-channels, the reference value being the maximal number of bits that each of the sub-channel is adapted to carry; a comparison module for comparing a summation of the number of bits with the predetermined number; and a process module for processing the number of bits of each of the sub-channels according to the compared result; wherein the decision module further decides a temporary number for the first sorted sub-channel, the calculation module further calculates the calculated number for each of the rest sorted sub-channels by subtracting the corresponding difference value from the number of bits of the first sorted sub-channel, and the calculation module further calculates the summation of the numbers of bits of the sorted sub-channels.
 13. The apparatus of claim 12, wherein the process module comprising: a load module for loading the numbers of bits into the sub-channels, if the summation is equal to the predetermined number.
 14. The apparatus of claim 12, wherein the process module comprising: an increase module for increasing the temporary number of the first sorted sub-channel by one, if the summation is smaller than the predetermined number, wherein in response to the increase, the calculation module further repeatedly calculates the calculated number for each of the rest sorted sub-channels by subtracting the corresponding difference value from the number of bits of the first sorted sub-channel, the selection module further repeatedly selects the maximum of the zero and the calculated number as the temporary number for each of the rest sorted sub-channels, the selection module further repeatedly selects the minimum of the temporary number and the reference value as the number of bits for each of the rest sorted sub-channels, the calculation module further repeatedly calculates the summation of the numbers of bits of the sorted sub-channels, the comparison module further repeatedly compares the summation with the predetermined number, and the process module further repeatedly processes the number of bits of each of the sub-channels according to the compared result.
 15. The apparatus of claim 12, wherein the selection module comprising: a group module for grouping the sub-channels having the same number of bits into a plurality of groups, if the summation is greater than the predetermined number, and a decrease module for decreasing the number of bits of one of a plurality of candidates, the candidate being decreased having a greatest power reduction value; wherein the selection module further selects the sub-channel with the smallest quality value from each of a plurality of groups to derive the candidates, the calculation module further calculates a power reduction value for each of the candidates, the calculation module further calculates the summation of the number of bits of the sorted sub-channels, the comparison module further compares the summation with the predetermined number, and the process module further processes the number of bits of each of the sub-channels according to the compared result.
 16. The apparatus of claim 15, wherein if the summation is greater than the predetermined number, the selection module further repeatedly selects the sub-channel with the smallest quality value from each of the groups to derive the candidate, the calculation module further repeatedly calculates the power reduction value for each of the candidates, the decrease module further repeatedly decreases the number of bits of the candidate with the greatest power reduction by one, the calculation module further repeatedly calculates the summation of the number of bits of the sorted sub-channels, the comparison module further repeatedly compares the summation with the predetermined number, and the process module further repeatedly processes the number of bits of each of the sub-channels according to the compared result.
 17. The apparatus of claim 15, wherein the process module comprises: a load module for loading the numbers of bits into the sub-channels, if the summation is equal to the predetermined number.
 18. The apparatus of claim 10, wherein the quality value is a channel gain to noise ratio (CNR).
 19. An apparatus for loading a predetermined number of bits into a plurality of sub-channels, comprising: means for sorting the sub-channels into a plurality of sorted sub-channels according to a quality value of each of the sub-channels; means for performing the following operation for each of the sorted sub-channels except the first sorted sub-channel: calculating a difference value by using the quality value of the sorted sub-channel and the quality value of the first sorted sub-channel; and means for deciding a number of bits for each of the sorted sub-channels according to the difference values; wherein a summation of the number of bits is equal to the predetermined number of bits.
 20. A system, comprising: a processing unit for loading a predetermined number of bits into a plurality of sub-channels, comprising; a sort module for sorting the sub-channels into a plurality of sorted sub-channels according to a quality value of each of the sub-channels; a calculation module for performing the following operation for each of the sorted sub-channels except the first sorted sub-channel: calculating a difference value by using the quality value of the sorted sub-channel and the quality value of the first sorted sub-channel; and a decision module for deciding a number of bits for each of the sorted sub-channels according to the difference values, wherein a summation of the number of bits is equal to the predetermined number of bits; and an interface for transmitting the predetermined number of bits. 